package 统计字符串中字符出现的次数;

import java.util.*;

public class HashMapDemo {
    public static void main(String[] args) {
        //键盘录入一个字符串
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个字符串：");
        String line = sc.nextLine();
        //创建HashMap集合，键是Character，值是integer
        TreeMap<Character,Integer>hm =new TreeMap<Character,Integer>();//因为hashmap是无序的，所以我们改成treemap，将键进行排序
        //遍历字符串，得到每一个字符
        for (int i=0;i<line.length();i++){
            char key  = line.charAt(i);
            //拿得到的值作为hashmap中的键去找对应的值，看其返回值
            Integer value  = hm.get(key);
            if (value==null){
                //如果返回值是null，说明该字符在集合中是不存在的，就把该字符作为键，一作为其值
                hm.put(key,1);
            }else {
                value++;//如果值不为null，那就将次数value加一
                hm.put(key,value);
            }
        }
        //遍历集合
         StringBuilder sb=new StringBuilder();//用于拼接
        Set<Character> keySet = hm.keySet();
        for (Character key:keySet){
            Integer value = hm.get(key);
            sb.append(key).append("(").append(value).append(")");//拼接
        }
        String result = sb.toString();
        System.out.println(result);
    }
}
